package com.frank.oj.service.team;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.frank.model.entity.group.Group;
import com.frank.oj.common.result.CommonResult;
import com.frank.oj.model.vo.AccessVO;
import com.frank.oj.model.vo.GroupVO;

/**
 * @author frank
 * @Date 2024/4/16
 */
public interface GroupService {
    CommonResult<IPage<GroupVO>> getGroupList(Integer limit, Integer currentPage, String keyword, Integer auth, Boolean onlyMine);

    CommonResult<Group> getGroup(Long gid);

    CommonResult<AccessVO> getGroupAccess(Long gid);

    CommonResult<Integer> getGroupAuth(Long gid);

    CommonResult<Void> addGroup(Group group);

    CommonResult<Void> updateGroup(Group group);

    CommonResult<Void> deleteGroup(Long gid);
}
